package kgc.LiuMang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import kgc.LiuMang.entity.Orderproduct;
import kgc.LiuMang.entity.Ordertable;

public interface OrderMapper {
	
	
	/**
	 * 根据用户的id 和 订单的状态 分页查询
	 * @param pageNum    	分页的从那开始
	 * @param pageSize		每页显示几条
	 * @param ouserid		要查询订单的用户id
	 * @Param ofid			要查询果销点的id
	 * @param ostates		要查询订单的状态
	 * @return
	 */
	public List<Ordertable> getOrderLimit(@Param("pageNum")Integer pageNum,
										@Param("pageSize") Integer pageSize,
										@Param("uid") Integer ouserid,
										@Param("ofid") Integer ofid,
										@Param("ostates") Integer ostates);
	
	
	
	//********************************增加订单方法*****************************************************
	
	/**
	 * 增加订单 需要向里面添加： 用户id,订单状态，果销点id,订单名字，收货地址，收货人姓名，订单总额，
	 * @param order 要添加的订单对象
	 * @return 		是否成功插入
	 */
	public int addOrder(Ordertable order);
	
	/**
	 * 增加订单商品 需要在里面的数据有：订单名字，商品id，商品数量，商品单价，商品总价
	 * @param op
	 * @return
	 */
	public int addOrderPro(Orderproduct op);
	
	/**
	 * 根据果销点的id  修改果销点营业额
	 * @param fid  果销点id
	 * @param fturnover  添加的果销点营业额
	 * @return
	 */
	public int updateUpFTurn(@Param("fid") Integer fid,@Param("fturnover") Float fturnover);
	
	//*********************************修改订单的方法***************************************************
	
	/**
	 * 修改订单状态的方法
	 * @param oid		要修改的订单id
	 * @param ostates	要修改的订单状态
	 * @return
	 */
	public int updateOrderStates(@Param("oid") Integer oid,@Param("ostates") Integer ostates);
	
	/**
	 * 根据果销点的id  修改果销点营业额
	 * @param fid  果销点id
	 * @param fturnover  减少的果销点营业额
	 * @return
	 */
	public int updateDownFTurn(@Param("fid") Integer fid,@Param("fturnover") Float fturnover);
	
	//***********************************删除订单的方法*********************************************
	
	/**
	 * 删除订单的方法
	 * @param oid	要删除订单的id
	 * @return
	 */
	public int deleteOrderById(Integer oid);
	
}